package com.hpin.mlxteacher.widget;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Xfermode;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;

public abstract class MaskedImage extends ImageView {
	 private static final Xfermode MASK_XFERMODE;  
	    private Bitmap mask;  
	    private Paint paint;  
	  
	    static {  
	        PorterDuff.Mode localMode = PorterDuff.Mode.DST_IN;  
	        MASK_XFERMODE = new PorterDuffXfermode(localMode);  
	    }  
	  
	    public MaskedImage(Context paramContext) {  
	        super(paramContext);  
	    }  
	  
	    public MaskedImage(Context paramContext, AttributeSet paramAttributeSet) {  
	        super(paramContext, paramAttributeSet);  
	    }  
	  
	    public MaskedImage(Context paramContext, AttributeSet paramAttributeSet, int paramInt) {  
	        super(paramContext, paramAttributeSet, paramInt);  
	    }  
	  
	    public abstract Bitmap createMask();  
	  
	    protected void onDraw(Canvas paramCanvas) {  
	        Drawable localDrawable = getDrawable();  
	        if (localDrawable == null)  
	            return;  
	        try {  
	            if (this.paint == null) {  
	                Paint localPaint1 = new Paint();  
	                this.paint = localPaint1;  
	                this.paint.setFilterBitmap(false);  
	                Paint localPaint2 = this.paint;  
	                Xfermode localXfermode1 = MASK_XFERMODE;  
	                @SuppressWarnings("unused")  
	                Xfermode localXfermode2 = localPaint2.setXfermode(localXfermode1);  
	            }  
	            float f1 = getWidth();  
	            float f2 = getHeight();  
	            int i = paramCanvas.saveLayer(0.0F, 0.0F, f1, f2, null, 31);  
	            int j = getWidth();  
	            int k = getHeight();  
	            localDrawable.setBounds(0, 0, j, k);  
	            localDrawable.draw(paramCanvas);  
	            if ((this.mask == null) || (this.mask.isRecycled())) {  
	                Bitmap localBitmap1 = createMask();  
	                this.mask = localBitmap1;  
	            }  
	            Bitmap localBitmap2 = this.mask;  
	            Paint localPaint3 = this.paint;  
	            paramCanvas.drawBitmap(localBitmap2, 0.0F, 0.0F, localPaint3);  
	            paramCanvas.restoreToCount(i);  
	            return;  
	        } catch (Exception localException) {  
	            StringBuilder localStringBuilder = new StringBuilder()  
	                    .append("Attempting to draw with recycled bitmap. View ID = ");  
	            System.out.println("localStringBuilder=="+localStringBuilder);  
	        }  
	    } 
}